package com.example.hms.controller;

import com.example.hms.entity.Live;
import com.example.hms.entity.Stay;
import com.example.hms.service.StayService;
import com.example.hms.util.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("/stay")
public class StayController {
    // 使用Resource注解注入StayService依赖
    @Resource
    private StayService stayService;

    /**
     * 查询所有住宿信息
     * 此方法通过GET请求处理selectAllStay请求，返回所有住宿信息
     * @param stay 住宿对象，用于传递查询条件
     * @return 包含住宿信息的Result对象
     */
    @RequestMapping(value = "selectAllStay", method = RequestMethod.GET)
    public Result selectAllStay(Stay stay)  {
        return stayService.selectAllStay(stay);
    }

    /**
     * 插入住宿信息
     * 此方法通过GET请求处理insertStay请求，插入新的住宿信息
     * @param live 居住对象，包含待插入的住宿信息
     * @return 表示插入操作结果的Result对象
     */
    @RequestMapping(value = "/insertStay",method = RequestMethod.GET)
    public Result insertStay(Live live, HttpServletRequest request){
        return stayService.insertStay(live,request);
    }

    /**
     * 取消住宿
     * 此方法通过GET请求处理cancelStay请求，取消特定的住宿安排
     * @param live 居住对象，包含待取消的住宿信息
     * @return 表示取消操作结果的Result对象
     */
    @RequestMapping(value = "/cancelStay",method = RequestMethod.GET)
    public Result cancelStay(Live live, HttpServletRequest request){
        return stayService.cancelStay(live,request);
    }

    /**
     * 废除住宿安排
     * 此方法通过GET请求处理abrogateStay请求，废除特定的住宿安排
     * @param live 居住对象，包含待废除的住宿信息
     * @return 表示废除操作结果的Result对象
     */
    @RequestMapping(value = "/abrogateStay",method = RequestMethod.GET)
    public Result abrogateStay(Live live, HttpServletRequest request){
        return stayService.abrogateStay(live,request);
    }

}

